package com.rabbiter.market.service.pay;

import com.alipay.api.response.AlipayTradeQueryResponse;
import com.rabbiter.market.domain.sale.sale_records.SaleRecords;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * @author: longxianghang
 * @date: 2025/3/21 16:02
 * @description:
 */
public interface PayService {

    Map<String, String> alipay(SaleRecords saleRecords, HttpServletResponse httpResponse);

    void alipayNotify(HttpServletRequest request);

    /**
     * 查询订单
     * @param outTradeNo 订单支付时传入的商户订单号,和支付宝交易号不能同时为空。 trade_no,out_trade_no如果同时存在优先取trade_no
     * @param tradeNo 支付宝交易号，和商户订单号不能同时为空
     * @param orgPid 银行间联模式下有用，其它场景请不要使用； 双联通过该参数指定需要查询的交易所属收单机构的pid;
     * @param queryOptions 查询选项，商户传入该参数可定制本接口同步响应额外返回的信息字段，数组格式。
     */
    AlipayTradeQueryResponse queryOrder(String outTradeNo, String tradeNo, String orgPid, List<String> queryOptions);
}
